Astrée: verification of absence of run-time error

نویسنده

  • Laurent Mauborgne
چکیده

Everybody knows about failure problems in software: it is an admitted fact that most large software do contain bugs. The cost of such bugs can be very high for our society and many methods have been proposed to try to reduce these failures. While merely reducing the number of bugs may be economically sound in many areas, in critical software (such as found in power plants or aeronautics), no failure can be accepted. In order to achieve an unfailing critical software, industrials follow very strict production patterns and must also certify the absence of errors through state-of-the-art verification. When old verification methodologies became intractable in time and cost due to the growth of code size, the Abstract Interpretation Team2 of École Normale Supérieure started developing Astrée (Blanchet et al., 2002). The object of Astrée is the automatic discovery of all potential errors of a certain class for critical software. As most critical software don’t (or won’t) have any error, the main challenge was to be exhaustive and very selective, that is yielding few or no false alarms on the software, so as to reduce the cost of verifying those alarms. In this paper, we show how Astrée is based on sound approximations of the semantics of C programs, tailored to be very accurate on a class of embedded

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Astrée: Proving the Absence of Runtime Errors

Safety-critical embedded software has to satisfy stringent quality requirements. Testing and validation consumes a large – and growing – fraction of development cost. The last years have seen the emergence of semantics-based static analysis tools in various application areas, from runtime error analysis to worst-case execution time prediction. Their appeal is that they have the potential to red...

متن کامل

The Verification Grand Challenge and Abstract Interpretation

Interpretation is a theory of approximation of mathematical structures, in particular those involved in the semantic models of computer systems [4,10,11]. Abstract interpretation can be applied to the systematic construction of methods and effective algorithms to approximate undecidable or very complex problems in computer science. The scope of application is rather large e.g. from type inferen...

متن کامل

Combination of Abstractions in the ASTRÉE Static Analyzer

We describe the structure of the abstract domains in the Astrée static analyzer, their modular organization into a hierarchical network, their cooperation to over-approximate the conjunction/reduced product of different abstractions and to ensure termination using collaborative widenings and narrowings. This separation of the abstraction into a combination of cooperative abstract domains makes ...

متن کامل

Formal Verification by Abstract Interpretation

interpretation is a theory of abstraction and constructive approximation of the mathematical structures used in the formal description of programming languages and the inference or verification of undecidable program properties. Developed in the late seventies with Radhia Cousot, it has since then been considerably applied to many aspects of programming, from syntax, to semantics, and proof met...

متن کامل

Automatic Large-Scale Software Verification by Abstract Interpretation

interpretation is a theory of abstraction and constructive approximation of the mathematical structures used in the formal description of programming languages and the inference or verification of undecidable program properties. Developed in the late seventies with Radhia Cousot, it has since then been considerably applied to many aspects of programming, from syntax, to semantics, and proof met...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004